﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MineSweeper.Data
{
    /// <summary>
    /// Preset game difficulties
    /// </summary>
    public enum GameDifficulty 
    {
        Beginner = 0,
        Intermediate = 1,
        Advanced = 2,
        Custom =3
    }

    /// <summary>
    /// Potential State of the tile
    /// </summary>
    public enum TileType
    {
        /// <summary>
        /// This is a no-op tile used to optimize hit testing and mine detection
        /// </summary>
        NoOp = 0,

        /// <summary>
        /// This represents a safe tile
        /// </summary>
        Safe = 1,

        /// <summary>
        /// This represents a Bomb tile
        /// </summary>
        Bomb = 2
    }

    /// <summary>
    /// Represents the state of the tile
    /// </summary>
    public enum TileState
    {
        /// <summary>
        /// The tile is in a covered state, we have no idea what it is
        /// </summary>
        Covered,

        /// <summary>
        /// The tile is in an uncovered state.
        /// The tile can be animated as safe: Empty or containing a numeric representing the nearby mines
        /// or it can be animated as exploded.
        /// Once a tile is uncovered it's state is frozen
        /// </summary>
        Uncovered,

        /// <summary>
        /// The tile has been flagged by the user as a potential bomb 
        /// </summary>
        Flagged,

        /// <summary>
        /// The tile has been flagged by the user as questionable
        /// </summary>
        Question
    }
}
